﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Business;
using DataTransferObjects;

namespace GraphicUserInterface.NewAccount
{
    public partial class frCreateKey : Form
    {
        public bool bIsCreateNewKey;
        public int iUserID;

        public frCreateKey(bool bIsCreateNewKey,int iUserID)
        {
            InitializeComponent();
            this.bIsCreateNewKey = bIsCreateNewKey;
            this.iUserID = iUserID;
        }

        private void toolTip1_Popup(object sender, PopupEventArgs e)
        {

        }

        private void btCreateKey_Click(object sender, EventArgs e)
        {
            if (bIsCreateNewKey)
            {
                //Hiện message box, chắc chắn muốn tạo ko?
                if (MessageBox.Show("Bạn chắc chắn muốn tạo khóa?", "?", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    if (!checkAccountInfor())
                    {
                        return;
                    }

                    KeyInforDTO keyInforDTO = new KeyInforDTO(int.Parse(cbKeyLength.SelectedItem.ToString()), tbPassphare.Text);

                    //Chuyển dữ liệu người dùng xuống tầng business
                    if (KeyBUS.generateNewKey(keyInforDTO))
                    {
                        MessageBox.Show("Thông tin của bạn đã được lưu trữ vào hệ thống.\n");
                    }
                    else
                        MessageBox.Show("Có lỗi xảy ra.\n");

                    this.Owner.Close();
                    this.Close();
                }
            }
            else
            {
                if (!checkAccountInfor())
                {
                    return;
                }

                KeyInforDTO keyInforDTO = new KeyInforDTO(cbKeyLength.SelectedIndex* 64 + 512, tbPassphare.Text);
                keyInforDTO.iUserID = this.iUserID;

                //Chuyển dữ liệu khóa xuống tầng business
                if (KeyBUS.changeExistKey(keyInforDTO))
                {
                    MessageBox.Show("Thông tin khóa của bạn đã được cập nhật trong hệ thống.\n");
                }
                else
                    MessageBox.Show("Có lỗi xảy ra.\n");

                this.Owner.Close();
                this.Close();
            }
            
        }

        private bool checkAccountInfor()
        {
            bool bIsTrue = true;
            string strMessage = "";

            if(tbPassphare.Text.Length == 0)
            {
                bIsTrue = false;
                strMessage = strMessage + "Bạn cần nhập passphrase.\n";
            }

            if (strMessage.Length != 0)
                MessageBox.Show(strMessage);
            return bIsTrue;
        }

        private void frCreateKey_Load(object sender, EventArgs e)
        {         
            //for (int iIndex = 0; iIndex < 9; ++iIndex )
            //{
            //    cbKeyLength.SelectedIndex = iIndex;
            //    cbKeyLength.SelectedItem = 512 + iIndex * 64;
            //}
            if(bIsCreateNewKey)
                cbKeyLength.SelectedIndex = 0;
            else
            {
                KeyInforDTO keyInforDTO = KeyBUS.getKeyInforFromDB(this.iUserID);
                this.cbKeyLength.SelectedIndex = (keyInforDTO.keyLength - 512) / 64;
                this.tbPassphare.Text = keyInforDTO.passPhrase;
            }

        }

        private void btBack_Click(object sender, EventArgs e)
        {
            this.Owner.Close();
            this.Close();
        }
        
    }
}
